Generally, a multi-function device, for example, a universal serial bus (USB) device, works in a default function (for example, a function 1) mode, and when a particular condition (for example, a driver of a function 2 is installed) is met, the multi-function device is switched to a function 2 mode, and works in the function 2 mode. When a common multi-function device, for example, a USB 3G WAN card, is in a default working mode, the common multi-function device works in a USB virtual optical disk manner, and after a user installs an optical disk driver program, the common multi-function device works in a modem or network interface card manner. However, each time the common multi-function device is used, re-enumeration (that is, searching) of a USB needs to be performed once, which lowers user experience.
Based on this, multi-function selection is generally implemented by using multiple configurations. That is, a USB device has multiple configurations, and each Configuration implements a different function, for example, C1: Modem; C2: network adapter; C3: global positioning system (GPS). A host enables, by setting different configurations, the USB device to work in different function modes.
However, in an existing implementation manner, because capabilities supported by the host are not exactly identical with capabilities supported by the USB device, the host cannot automatically perform configuration according to the capabilities supported by the host or the capabilities of the USB device, which therefore lowers user experience.